package example;

import java.io.File;
import java.util.Scanner;

public class Example1 {
    public static void main(String[] args) {
        //1.输入文件名和路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要搜索的文件名: ");
        String filename = scanner.next();
        System.out.println("请输入要搜索的目录: ");
        String rootPath = scanner.next();
        File rootFile = new File(rootPath);
        if(!rootFile.isDirectory()){
            //如果不是目录,就直接打印并退出
            System.out.println("输入的路径有误!");
            return;
        }
        //2.有了搜索的路径后,就可以依据 递归 的方式来搜索
        scanDir(rootFile,filename);

    }

    private static void scanDir(File rootFile, String filename) {
        //1.把当前目录中的 文件 和 子目录 都列出来.
        File[]  files = rootFile.listFiles();
        if (files == null){
            //说明是一个空目录,直接返回即可.
            return;
        }
        //遍历上述 files ,判定每一个 file 是目录还是文件
        for (File f:files) {
            System.out.println("当前遍历到: "+f.getAbsolutePath());
            if(f.isFile()){
                //普通文件,判定文件名是否是我们需要的文件
                if(filename.equals(f.getName())){
                    System.out.println("找到了符合标准的文件,文件路径为"+f.getAbsolutePath());
                }
            } else if (f.isDirectory()) {
                //目录文件,需要进一步递归
                scanDir(f,filename);
            } else{

            }

        }
    }
}
